import typescript from '@rollup/plugin-typescript';
import terser from '@rollup/plugin-terser';
import { defineConfig } from 'rollup';
import fs from 'fs';

const version = process.env.SEMANTIC_RELEASE_NEXT_VERSION || JSON.parse(fs.readFileSync('./package.json')).version;

console.log('building version:', version);

const banner = `/**
 * marked v${version} - a markdown parser
 * Copyright (c) 2011-${new Date().getFullYear()}, Christopher Jeffrey. (MIT Licensed)
 * https://github.com/markedjs/marked
 */

/**
 * DO NOT EDIT THIS FILE
 * The code in this file is generated from files in ./src/
 */
`;

export default defineConfig([
  {
    input: 'src/marked.ts',
    output: [{
      file: 'lib/marked.esm.js',
      format: 'esm',
      sourcemap: true,
      banner,
    },
    {
      file: 'lib/marked.umd.js',
      format: 'umd',
      name: 'marked',
      sourcemap: true,
      banner,
    },
    {
      file: 'marked.min.js',
      format: 'umd',
      name: 'marked',
      sourcemap: false,
      banner,
      plugins: [terser({
        format: {
          comments: (node, comment) => {
            if (comment.type === 'comment2') {
              return comment.value.includes('Copyright (c)');
            }
          },
        },
      })],
    },
    {
      file: 'lib/marked.cjs',
      format: 'cjs',
      name: 'marked',
      sourcemap: true,
      banner,
    }],
    plugins: [
      typescript(),
    ],
  },
]);
